package com.lp.biz.order.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.Data;

/**
 * biz_order实体类
 * 订单
 * @program: backend
 * @author Ke.Song
 * @since 2024-05-26 11:54:15
 */
@Data
@TableName("biz_order")
public class BizOrder implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 购买人
     */
    private Integer memberId;

    /**
     * 订单号
     */
    private String orderNum;

    /**
     * 订单类型, 0: 会员, 1: 共读会, 2: 训练营，3：课程
     */
    private Integer orderType;

    /**
     * 商品id
     */
    private Integer goodsId;

    /**
     * 交易类型, 0: 赠送, 1: 购买
     */
    private Integer tradeType;

    /**
     * 订单价格
     */
    private BigDecimal orderPrice;

    /**
     * 实际价格
     */
    private BigDecimal actualPrice;

    /**
     * 支付价格
     */
    private BigDecimal payPrice;

    /**
     * 剩余金额
     */
    private BigDecimal remainingPrice;

    /**
     * 支付方式, 1: 微信支付
     */
    private Integer payMethod;

    /**
     * 自己的优惠券
     */
    private Integer bizCouponId;

    /**
     * 订单状态, 0: 赠送, 1: 未支付, 2: 已支付, 3: 主动取消, 4: 超时取消, 5: 支付失败, 6: 退款失败, 7: 退款成功
     */
    @TableField("`status`")
    private Integer status;

    /**
     * 手续费
     */
    private BigDecimal commissionCharge;

    /**
     * 佣金
     */
    private BigDecimal kickbackCharge;

    /**
     * 优惠券金额
     */
    private BigDecimal couponCharge;

    /**
     * 退款金额
     */
    private BigDecimal refundPrice;

    /**
     * 退款原因
     */
    private String refundReason;

    /**
     * 退款操作人
     */
    private Integer refundOperatorId;

    /**
     * 退款时间
     */
    private LocalDateTime refundAt;

    /**
     * 下单时间
     */
    private LocalDateTime createAt;

    /**
     * 更新时间
     */
    private LocalDateTime updateAt;

    /**
     * 支付时间
     */
    private LocalDateTime payAt;

    /**
     * 是否计算
     */
    private Integer isCalculated;


}
